package com.iwhalecloud.citybrain.flow.platform.manager.domain.repository;

import java.util.List;

import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.ModelCustomConfig;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.ModelCustomConfigDomain;

/**
 * @author lilh
 * @date 2021/6/7 09:56
 */
public interface FlowReModelCustomConfigRepository {

    /**
     * 模型或者节点自定义配置
     *
     * @param modelCustomConfig 自定义配置
     * @return 是否成功
     */
    boolean addModelCustomConfig(ModelCustomConfig modelCustomConfig);

    /**
     * 保存模型或者几点自定义配置
     * @param modelCustomConfigDomain
     * @return
     */
    boolean save(ModelCustomConfigDomain modelCustomConfigDomain);

    /**
     * 根据部署id和节点编码查询自定义配置
     *
     * @param deploymentId 部署id
     * @param nodeCode     节点编码
     * @param type         配置的类型
     * @return 自定义配置列表
     */
    List<ModelCustomConfig> listModelCustomConfig(String deploymentId, String nodeCode, String type);


    /**
     * 根据部署id和节点编码、类型查询自定义配置
     * 与上面接口一样，该接口采用DDD思想开发
     * @param deploymentId
     * @param nodeCode
     * @param type
     * @return
     */
    List<ModelCustomConfigDomain> listModelConfigByDeployIdAndType(String deploymentId, String nodeCode, String type);

    /**
     * 根据部署id和节点编码、类型查询自定义配置
     * 与上面接口一样，该接口采用DDD思想开发
     * @param deploymentId
     * @param nodeCode
     * @param type
     * @return
     */
    List<ModelCustomConfigDomain> listModelConfigByParams(String deploymentId, String nodeCode, String type);

}
